package com.cskaoyan.service;

import com.cskaoyan.bean.bo.*;
import com.cskaoyan.bean.param.BaseParam;
import com.cskaoyan.bean.pojo.MarketAdmin;

import com.cskaoyan.bean.pojo.MarketRole;
import com.cskaoyan.bean.pojo.MarketStorage;
import com.cskaoyan.bean.vo.AdminAdminListVo;
import com.cskaoyan.bean.vo.AdminCreatePicStoreVo;
import com.cskaoyan.bean.vo.AdminLogListVo;
import com.cskaoyan.bean.vo.AdminUpdateVo;
import org.springframework.web.multipart.MultipartFile;

import com.cskaoyan.bean.vo.*;


/**
 * @author :beauty
 * @version : $version
 * @date :Created in 2022/4/6   17:07
 * @description:
 * @return:
 */
public interface SystemService {

    //展示本页管理员信息
    AdminAdminListVo query(AdminListBo adminListBo);
    //增加一个管理员
    MarketAdmin insert(AdminCreateBo adminCreateBo);

//    增加管理员添加头像
    //不使用这个方法，使用下面商品的上传图片方法
//    AdminCreatePicStoreVo addPic(String filename, String contentType, long size,String url);

    //修改管理员
    AdminUpdateVo adminUpdate(AdminCreateBo adminCreateBo);

    //删除管理员信息
    void delete(AdminCreateBo adminCreateBo);

    //查询所有日志信息
    AdminLogListVo queryLog(AdminLogListBo adminLogListBo);


    /**
     * 商品管理-图片上传 admin/storage/create
     * 创建日期：2022/04/07 14:54
     * @param  file  MultipartFile类型
     * @param  finalFileName 通过UUID获得的最终文件名字
     * @param  relativePath 拼接后的图片相对路径
     * @return com.cskaoyan.bean.pojo.MarketStorage
     * @author ChengWenqi
     */
    MarketStorage storageCreate(MultipartFile file, String finalFileName, String relativePath);

    //查询所有角色选项
    RoleOptionVo queryAllRole();

   //查询所有对象
    StorageListVo storageList(BaseParam baseParam,String key,String name);

    //修改储存对象信息
    MarketStorage updateStorage(MarketStorage marketStorage);

    //删除储存的对象（假删）
    void deleteStorage(MarketStorage marketStorage);

    //查询所有角色信息
    RoleListVo queryAllRoleList(RoleListBo roleListBo);

    //新增角色
    MarketRole roleCreate(RoleCreateBo roleCreateBo);

    //修改角色信息
    void updateRole(MarketRole marketRole);

    //删除角色信息
    int deleteRole(MarketRole marketRole);

    /**
     * 获取所有授权信息的List，以及当前role拥有的授权信息
     * 创建日期：2022/04/08 19:40
     * @param  roleId 角色id
     * @return com.cskaoyan.bean.vo.RolePermissionsVO
     * @author ChengWenqi
     */
    RolePermissionsVO queryPermissions(Integer roleId);

    /**
     * 根据roleID，更新对应的授权信息
     * 创建日期：2022/04/08 20:37
     * @param  rolePermissionBO 包括roleID和更新后的授权信息
     * @return int code：200-更新成功，404-roleId不存在
     * @author ChengWenqi
     */
    int updateRolePermissions(RolePermissionBO rolePermissionBO);

}
